package GUI;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @ClassName : JRadioButtonDemo
 * @Author : LV88VL
 * @Date: 2021/4/1 15:23
 * @Description : JRadioButton组件：单选按钮不同于复选框
 *                          例如：性别
 *
 *                          构造方法：
 *                          JRadioButton()：创建一个最初选中的单选按钮没有设置文本。
 *                          JRadioButton(String text)：创建一个具有指定文本选中的单选按钮。
 *                          JRadioButton(String text, boolean selected)：用指定的文本和选择状态创建一个广播按钮。
 *
 *
 *                          按钮组：把多个按钮作为一个按钮组，同一个组的按钮只能选一个
 */
public class JRadioButtonDemo extends JFrame {
    //单选按钮组对象
    private ButtonGroup group;
    //定义一个面板用于放置按钮
    private  JPanel panel;
    //定义作为改变颜色的面板
    private JPanel pallet;
    public  JRadioButtonDemo(){
        //创建改变颜色的面板对象
        pallet =new JPanel();
        //放置面板中间
        this.add(pallet, BorderLayout.CENTER);
        panel =new JPanel();
        group =new ButtonGroup();
        //添加按钮
        this.addJRadioButton("灰");
        this.addJRadioButton("粉");
        this.setSize(300,300);
        this.add(panel,BorderLayout.SOUTH);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    //实现按钮添加到按钮组，并添加到面板中
    private void addJRadioButton(final  String text){
        JRadioButton radioButton=new JRadioButton(text);
        group.add(radioButton);
        panel.add(radioButton);
        radioButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Color color =null;
                if("灰".equals(text)){
                    color=Color.GRAY;
                }else if("粉".equals(text)){
                    color=Color.PINK;
                }else{
                    color=Color.WHITE;
                }
                pallet.setBackground(color);
            }
        });
    }
    public static void main(String[] args) {
        new JRadioButtonDemo();
    }
}
